package cn.anyubao.blog.controller;

import cn.anyubao.blog.config.ApplicationContextUtils;
import cn.anyubao.blog.config.OssConfig;
import cn.anyubao.blog.model.ArticleTag;
import cn.anyubao.blog.service.ArticleTagService;
import com.alibaba.fastjson.JSON;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationContextFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.File;

/**
 * @author huqilang
 */
@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private ArticleTagService articleTagService;





    /**
     * @Author huql
     * @Description
     * @Date 10:39 下午 2021/1/2
     * @Param []
     * @return java.lang.String
     **/
    @GetMapping("")
    public String test() {
        OssConfig ossConfig =  ApplicationContextUtils.getBean(OssConfig.class);
        System.out.println(ossConfig.getEndpoint()+"--"+ossConfig.getAccessKeyId()+"--"+ossConfig.getAccessKeySecret());
        return JSON.toJSONString("1");
    }


    public static void main(String[] args) {

        OssConfig ossConfig =  ApplicationContextUtils.getBean(OssConfig.class);

        System.out.println(ossConfig.getEndpoint()+"--"+ossConfig.getAccessKeyId()+"--"+ossConfig.getAccessKeySecret());
        //ApplicationContext applicationContext = new A
        //测试 阿里云OSS 上传文件
        // Endpoint以杭州为例，其它Region请按实际情况填写。
       // String endpoint = ossConfig.getEndpoint();
        // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。
        // 强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录 https://ram.console.aliyun.com 创建RAM账号。
       // String accessKeyId = "";
       // String accessKeySecret = "";

        // 创建OSSClient实例。
        //OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        // 创建PutObjectRequest对象。
        //PutObjectRequest putObjectRequest = new PutObjectRequest("blog-2", "aaa.png", new File("/Users/huqilang/Pictures/map/001 (1).jpg"));

        // 如果需要上传时设置存储类型与访问权限，请参考以下示例代码。
        // ObjectMetadata metadata = new ObjectMetadata();
        // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
        // metadata.setObjectAcl(CannedAccessControlList.Private);
        // putObjectRequest.setMetadata(metadata);

        // 上传文件。
        //ossClient.putObject(putObjectRequest);

        // 关闭OSSClient。
        //ossClient.shutdown();
    }
}
